[<<Previous Entry]
[^^Up^^]
[Next Entry>>]
[Menu]
[About The Guide]
DOINTR IEXP1,IEXP2,IEXP3,IEXP4,IEXP5,IEXP6,IEXP7,IEXP8,IEXP9,IEXP10
Function
Generate system interrupt number IEXP1 (0-255) with the following
register values:
AX = IEXP2
BX = IEXP3
CX = IEXP4
DX = IEXP5
SI = IEXP6
DI = IEXP7
FLAGS = IEXP8
DS = IEXP9
ES = IEXP10
Syntax
DOINTR int,ax,bx,cx,dx,si,di,flags,ds,es
int - An integer expression with the interrupt number to call
(0 through 255).
others - Integer expressions with 16-bit register values to pass to
the interrupt (ax, bx, cx, dx, si, and di are general purpose
registers; ds and es are segment registers; flags is the 80x86
processor status register).
Remarks
This statement allows practically unlimited flexibility in PPL. It
allows you to access any system service available via the BIOS (video,
disk, time, etc), DOS or other third party interface (DESQview, NETBIOS,
IPX/SPX, Btrieve, etc). The possibilities are limited only by your
imagination. Values that are returned via register may be accessed via
the REG...() functions. The values to pass to specific interrupts will
vary by the interrupt and function desired. WARNING!!! DOINTR can be
a very valuable tool when used wisely; it can also be extremely
destructive when used improperly (either accidentally or intentionally).
Use it at your own risk!
Examples
' Create subdirectory - DOS function 39h
INTEGER addr
STRING path
LET path = "C:\$TMPDIR$"
VARADDR path,addr
DOINTR 21h,39h,0,0,addr%00010000h,0,0,0,addr/00010000h,0
IF (REGCF() & (REGAX() = 3)) THEN
PRINTLN "Error: Path not found"
ELSE IF (REGCF() & (REGAX() = 5)) THEN
PRINTLN "Error: Access Denied"
ELSE IF (REGCF()) THEN
PRINTLN "Error: Unknown Error"
ELSE
PRINTLN "Directory successfully created..."
ENDIF
See Also:
B2W()
REG...()
VARADDR
VAROFF
VARSEG
This page created by ng2html v1.05, the Norton guide to HTML conversion utility.
Written by Dave Pearson